﻿Public Class perProdutoProposta
    Inherits perAcessoBD

    Public Sub inserirProdutoProposta(ByVal iCodProposta As Int32,
                                      ByVal iRevProposta As Int32,
                                      ByVal sCodProduto As String,
                                      ByVal iCodRegiao As Int32,
                                      ByVal iItem As Int32,
                                      ByVal bForma As Boolean,
                                      ByVal dQuantidade As Double,
                                      ByVal dValorMarca As Decimal,
                                      ByVal dCustoMarca As Decimal,
                                      ByVal dRoyaltiesMarca As Double)
        Dim sSql As String
        Dim objAcessoBd As New perAcessoBD

        sSql = "INSERT INTO proposta_produtos" & Environment.NewLine &
               "           (codProposta" & Environment.NewLine &
               "           ,revProposta" & Environment.NewLine &
               "           ,codProduto" & Environment.NewLine &
               "           ,codRegiao" & Environment.NewLine &
               "           ,item" & Environment.NewLine &
               "           ,forma" & Environment.NewLine &
               "           ,quantidade" & Environment.NewLine &
               "           ,valorMarca" & Environment.NewLine &
               "           ,custoMarca" & Environment.NewLine &
               "           ,royaltiesMarca)" & Environment.NewLine &
               "        VALUES" & Environment.NewLine &
               "           (@codProposta" & Environment.NewLine &
               "           ,@revProposta" & Environment.NewLine &
               "           ,@codProduto" & Environment.NewLine &
               "           ,@codRegiao" & Environment.NewLine &
               "           ,@item" & Environment.NewLine &
               "           ,@forma" & Environment.NewLine &
               "           ,@quantidade" & Environment.NewLine &
               "           ,@valorMarca" & Environment.NewLine &
               "           ,@custoMarca" & Environment.NewLine &
               "           ,@royaltiesMarca)"
        With MyBase.SQLCmd.Parameters
            .Clear()
            .AddWithValue("@codProposta", iCodProposta)
            .AddWithValue("@revProposta", iRevProposta)
            .AddWithValue("@codProduto", sCodProduto)
            .AddWithValue("@codRegiao", iCodRegiao)
            .AddWithValue("@item", iItem)
            .AddWithValue("@forma", bForma)
            .AddWithValue("@quantidade", dQuantidade)
            .AddWithValue("@valorMarca", dValorMarca)
            .AddWithValue("@custoMarca", dCustoMarca)
            .AddWithValue("@royaltiesMarca", dRoyaltiesMarca)
        End With

        MyBase.executarAcao(sSql)

    End Sub

    Public Function retornarProdutoProposta(ByVal icodProposta As Int32, ByVal iRevProposta As Int32) As DataTable
        Dim sSql As String

        sSql = "SELECT proposta_produtos.codRegiao, " & Environment.NewLine &
               "       proposta_regiao.descricao, " & Environment.NewLine &
               "       proposta_produtos.item," & Environment.NewLine &
               "       proposta_produtos.codProduto," & Environment.NewLine &
               "       produto.descProduto," & Environment.NewLine &
               "       proposta_produtos.forma," & Environment.NewLine &
               "       proposta_produtos.quantidade," & Environment.NewLine &
               "       produto.unidade," & Environment.NewLine &
               "       produto.pesoBrutoUnitario," & Environment.NewLine &
               "       produto.pesoBrutoUnitario *proposta_produtos.quantidade as pesoTotal," & Environment.NewLine &
               "       produto.ncm," & Environment.NewLine &
               "       Cliente.Cnpj," & Environment.NewLine &
               "       NCM.IPI," & Environment.NewLine &
               "       produto.descMarca," & Environment.NewLine &
               "       proposta_produtos.valorMarca," & Environment.NewLine &
               "       proposta_produtos.royaltiesMarca as Royalties," & Environment.NewLine &
               "       0 as custo," & Environment.NewLine &
               "       proposta_produtos.custoMarca as custoMarca," & Environment.NewLine &
               "       0 as valorUnitario," & Environment.NewLine &
               "       0 as valorRoyalties," & Environment.NewLine &
               "       0 as valorFrete," & Environment.NewLine &
               "       0 as valorForma," & Environment.NewLine &
               "       0 as valorIPI," & Environment.NewLine &
               "       0 as valorICMS," & Environment.NewLine &
               "       0 as valorPIS_COFINS" & Environment.NewLine &
               "  FROM Proposta_Produtos" & Environment.NewLine &
               "        INNER JOIN Produto on RTrim(LTrim(Produto.codProduto)) = RTrim(LTrim(Proposta_Produtos.codProduto))" & Environment.NewLine &
               "        INNER JOIN Proposta_Regiao on Proposta_Regiao.codRegiao = Proposta_Produtos.codRegiao and" & Environment.NewLine &
               "                                      Proposta_Regiao.codProposta = Proposta_Produtos.codProposta And" & Environment.NewLine &
               "                                      Proposta_Regiao.revProposta = Proposta_Produtos.revProposta" & Environment.NewLine &
               "        LEFT JOIN Cliente ON RTrim(LTrim(Produto.centroFornecedor)) = RTrim(LTrim(Cliente.codCliente))  " & Environment.NewLine &
               "        LEFT JOIN NCM On Produto.Ncm = Ncm.ncm " & Environment.NewLine &
               "  WHERE Proposta_Produtos.codProposta = @codProposta " & Environment.NewLine &
               "    AND Proposta_Produtos.revProposta = @revProposta"

        With MyBase.SQLCmd.Parameters
            .Clear()
            .AddWithValue("codProposta", icodProposta)
            .AddWithValue("revProposta", iRevProposta)
        End With

        Return MyBase.executarConsulta(sSql)

    End Function

End Class
